home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1997 / MacHack 1997.toast / Hacks / Hacks ’95 / Hex Abacus / Abacus.make < prev    next >
Text File  |  1995-06-24  |  5KB  |  100 lines

  1. #   File:       Abacus.make
  2. #   Target:     Abacus
  3. #   Sources:    Abacus.c Abacus.Def Objects.Def
  4. #   Created:    Tuesday, April 11, 1995 9:16:36 PM
  5.  
  6.  
  7. OBJECTS =  {mdTarget:}Abacus.c.o
  8. defFiles = Abacus.Def
  9.  
  10. importedDefFiles = 
  11.  
  12. instanceFiles =  Objects.Def
  13.  
  14. tsFiles = 
  15.  
  16. htsFiles = 
  17.  
  18. ##### General Magic Directory/File Defines/Options #####
  19. thePackage = Abacus
  20. theRAMCard = AbacusRC
  21. OMOpts = {MagicDebugOpts} {OMMagicTarget} {ExtraOMOptions} {MagicInterfaces}Indexicals.h -read {OMDumpfile} -i :
  22. OMRAMOpts = -equates {thePackage} {mdTarget:}
  23. ramCardPackage = AbacusRAM
  24. InterfaceDir = {mdTarget:}Interfaces:
  25. ChangeFile = {mdTarget:}ChangedClassOrOp
  26. ImportsIncludesFile = {InterfaceDir}PackageImports.h
  27. GendCInterfaceFiles = {InterfaceDir}PackageClassNumbers.h {InterfaceDir}PackageFieldNumbers.h {InterfaceDir}PackageFields.h {InterfaceDir}PackageOperationNumbers.h {InterfaceDir}PackageOperations.h
  28. GendAInterfaceFiles = {InterfaceDir}PackageClassNumbers.Equ.a {InterfaceDir}PackageFieldNumbers.Equ.a {InterfaceDir}PackageFields.Equ.a {InterfaceDir}PackageOperationNumbers.Equ.a {InterfaceDir}PackageOperations.Equ.a
  29.  
  30. COptions= {MagicCOptions} {MagicDump} {MagicCDebugOpts} {MagicTarget} -i {MagicTargInterfaces} -i {MagicInterfaces} -i "{mdTarget:}"Interfaces: `Catenate Build.Directories ≥ dev:null || Set Status 0`
  31.  
  32. ##### Default Rules #####
  33. .c.o ƒ .c
  34.     {C} {DepDir}{Default}.c -o {Targ} {COptions} {ExtraCOptions}
  35.  
  36. ##### Directory dependencies #####
  37. {mdTarget:} ƒ : {mdTarget:}
  38.  
  39. {mdTarget:}Code ƒ {objects} {thePackage}.make
  40.     {Link} -xm gm -fastlink on -dead off -o {mdTarget:}Code -Sym on -c gm01 -t CLUS -mapgm {mdTarget:}Code.Map {objects} {ExtraLinkOptions}
  41.  
  42. ##### General Magic ObjectMaker Dumpfile Dependencies #####
  43. "{OMDumpfile}" ƒ "{MagicDevTools}"ObjectMaker # if ObjectMaker changes, regenerate interfaces
  44.     Execute BuildPreCompileIfNeeded
  45.  
  46. ##### General Magic ObjectMaker Dependencies #####
  47. {GendCInterfaceFiles}    ∂
  48. {GendAInterfaceFiles}    ∂
  49.     ƒ {ChangeFile}
  50.  
  51. {objects} ƒ     ∂
  52.     {GendCInterfaceFiles}    ∂
  53.     {GendAInterfaceFiles}    ∂
  54.     {ImportsIncludesFile}
  55.  
  56. {ImportsIncludesFile} ƒ {importedDefFiles} {thePackage}.make
  57.     Echo > {ImportsIncludesFile}
  58.     For iDefFile In {importedDefFiles}                                                                                                                                                            ;∂
  59.         If {iDefFile} =~ /(≈:)*(≈)®1Public.Def/                                                                                                                                                    ;∂
  60.             Set importedPackageName "{®1}"                                                                                                                                                            ;∂
  61.             NewFolder {InterfaceDir}temp || Set Status 0                                                                                                                                            ;∂
  62.             ObjectMaker {OMOpts} {iDefFile} -headers {InterfaceDir}temp: -i "{MagicDevDefFiles}"                                                                                                    ;∂
  63.             Delete -i {InterfaceDir}temp:TempImports.h || Set Status 0                                                                                                                                ;∂
  64.             Catenate {InterfaceDir}temp:≈.h > {InterfaceDir}temp:TempImports.h                                                                                                                        ;∂
  65.             StreamEdit -e "/__Package_/ Replace /__Package_/ ∂"__{importedPackageName}_∂"" "{InterfaceDir}temp:TempImports.h" > "{InterfaceDir}{importedPackageName}Imports.h"  || Set Status 0        ;∂
  66.             Echo "∂#include ∂"{importedPackageName}Imports.h∂"" >> {ImportsIncludesFile}                                                                                                            ;∂
  67.             Delete -y "{InterfaceDir}temp:"    || Set Status 0                                                                                                                                            ;∂
  68.         End                                                                                                                                                                                        ;∂
  69.     End
  70.  
  71. {ChangeFile} ƒ {defFiles} {thePackage}.make
  72.     Date > {ChangeFile}.New
  73.     ObjectMaker {OMOpts} {defFiles} {tsFiles} -templates {mdTarget:}Templates.r.New -headers {InterfaceDir} -i "{MagicDevDefFiles}"
  74.     Rename -y {mdTarget:}Templates.r.New Templates.r
  75.     MagicBuildDebugging {thePackage} {mdTarget:} {InterfaceDir} || (Echo "### Failure building Debugging information∂n")
  76.     Rename -y {ChangeFile}.New {ChangeFile}
  77.  
  78. ##### General Magic Main Build Rules #####
  79. {thePackage} ƒ "{OMDumpfile}" {ChangeFile} {mdTarget:}Code {defFiles} {tsFiles} {instanceFiles} {thePackage}.make 
  80.     ObjectMaker {OMOpts} {defFiles} {tsFiles} {instanceFiles} -o {mdTarget:}{thePackage} -code {mdTarget:}Code
  81.     Move -y {mdTarget:}{thePackage} {Targ}
  82.     MagicDeleteChanges
  83.     Duplicate -y {Targ} "{MagicDevSystem}"
  84.     If "{MagicAutoRun}" == 1; MagicRunPackage {thePackage}; End
  85.  
  86. ##### General Magic RamCard Build Rules #####
  87. {ramCardPackage} ƒ "{OMDumpfile}" {ChangeFile} {mdTarget:}Code {defFiles} {tsFiles} {instanceFiles} {thePackage}.make
  88.     ObjectMaker {OMOpts} {OMRAMOpts} {defFiles} {tsFiles} {instanceFiles} -o {ramCardPackage} -code {mdTarget:}Code
  89.     Catenate {mdTarget:}ClusterEquates {mdTarget:}RoutineEquates > {mdTarget:}SavedEquates
  90.  
  91. {theRamCard} ƒ {ramCardPackage}
  92.     delete -i {mdTarget:}{theRamCard}.Def ∑ dev:null
  93.     Echo "Package " {thePackage} ∂"{ramCardPackage}∂"∂; >> {mdTarget:}{theRamCard}.Def
  94.     ObjectMaker -uniqueID {CardTypeOptions} -rom={CardBase} {OMOpts} {OMRAMOpts} {mdTarget:}{theRamCard}.Def -o {mdTarget:}{theRamCard}
  95.     Move -y {mdTarget:}{theRAMCard} {Targ}
  96.     MagicCreateEquates {thePackage}
  97.     Duplicate -y {mdTarget:}Code.Sym "{MagicTelebugFolder}{theRAMCard}.Sym"
  98.     Echo "∂nsource on∂nuse ∂"{thePackage}RC.SYM∂"∂nautosource on∂nsourcepath `Directory`" > "{MagicTelebugFolder}Telebug UserStartup"
  99.     If "{MagicAutoRun}" == 1; MagicSendRAMCard {thePackage}; End
  100.